home *** CD-ROM | disk | FTP | other *** search
/ Suzy B Software 2 / Suzy B Software CD-ROM 2 (1994).iso / extras / programm / gemfsc19 / gemfsc19.lzh / GNUGEM27 / AESOBJ.C < prev    next >
C/C++ Source or Header  |  1993-03-24  |  4KB  |  194 lines

  1. /*
  2.  *    Aes object library interface
  3.  *
  4.  *        objc_add          Add an object to an object tree
  5.  *        objc_delete       Delete an object from an object tree
  6.  *        objc_draw          Draw an Object
  7.  *        objc_find          Find an Object under mouse
  8.  *        objc_offset       Compute offset of object relative to screen
  9.  *        objc_order          Move an object to a new position
  10.  *        objc_edit          Let user edit text in an object
  11.  *        objc_change       Change an Objects state
  12.  *
  13.  *        ++jrb    bammi@cadence.com
  14.  *        modified: mj -- ntomczak@vm.ucs.ualberta.ca
  15.  */
  16. #include "common.h"
  17.  
  18. #ifdef __DEF_ALL__
  19.  
  20. #define L_objc_add
  21. #define L_objc_del
  22. #define L_objc_dra
  23. #define L_objc_fin
  24. #define L_objc_off
  25. #define L_objc_ord
  26. #define L_objc_edi
  27. #define L_objc_cha
  28.  
  29. #endif /* __DEF_ALL__ */
  30.  
  31.  
  32. #ifdef L_objc_add
  33.  
  34. /* Add an Object to tree
  35.  *    return 0 on error    >0 no error
  36.  */
  37. int objc_add(void *Tree, int Parent, int Child)
  38. {
  39.     _int_in[0] = Parent;
  40.     _int_in[1] = Child;
  41.     _addrin[0] = Tree;
  42.     return __aes__(AES_CONTROL_ENCODE(40, 2, 1, 1));
  43. }
  44. #endif /* L_objc_add */
  45.  
  46. #ifdef L_objc_del
  47.  
  48. /* Delete an Object from a tree
  49.  *    return 0 on error    >0 no error
  50.  */
  51. int objc_delete(void *Tree, int Object)
  52. {
  53.     _addrin[0] = Tree;
  54.     _int_in[0]    = Object;
  55.     return __aes__(AES_CONTROL_ENCODE(41, 1, 1, 1));
  56. }
  57. #endif /* L_objc_del */
  58.  
  59.  
  60. #ifdef L_objc_dra
  61.  
  62. /* Draw an Object
  63.  *    Tree    Address of Tree containing Object
  64.  *    Start    Index of Starting Object
  65.  *    Depth    max depth to draw to
  66.  *    Cx, Cy, Cw, Ch define the clipping rectangle
  67.  *
  68.  *    return 0 on error    >0 no error
  69.  */
  70. int objc_draw(void *Tree, int Start, int Depth,
  71.           int Cx, int Cy, int Cw, int Ch)
  72. {
  73.     _int_in[0] = Start;
  74.     _int_in[1] = Depth;
  75.     _int_in[2] = Cx;
  76.     _int_in[3] = Cy;
  77.     _int_in[4] = Cw;
  78.     _int_in[5] = Ch;
  79.     _addrin[0] = Tree;
  80.  
  81.     return __aes__(AES_CONTROL_ENCODE(42, 6, 1, 1));
  82. }
  83. #endif /* L_objc_dra */
  84.  
  85.  
  86. #ifdef L_objc_fin
  87.  
  88. /* Find an object under mouse form
  89.  *    Tree    Address of tree containing object Start
  90.  *    Start    The object at which to start the search
  91.  *    Depth    Max depth of tree to search
  92.  *    Mx, My    mouse Location
  93.  *
  94.  *    returns Index of object found (0 thru n), -1 == no object
  95.  */
  96. int objc_find(void *Tree, int Start, int Depth, int Mx, int My)
  97. {
  98.     _int_in[0] = Start;
  99.     _int_in[1] = Depth;
  100.     _int_in[2] = Mx;
  101.     _int_in[3] = My;
  102.     _addrin[0] = Tree;
  103.  
  104.     return __aes__(AES_CONTROL_ENCODE(43, 4, 1, 1));
  105. }
  106. #endif /* L_objc_fin */
  107.  
  108. #ifdef L_objc_off
  109.  
  110. /* Compute Object offset rel. to screen
  111.  *    returns 0 on error    >0 no error
  112.  */
  113. int objc_offset(void *Tree, int Object,
  114.         int  *X, int *Y)
  115. {
  116.     int retval;
  117.  
  118.     _addrin[0] = Tree;
  119.     _int_in[0] = Object;
  120.  
  121.     retval = __aes__(AES_CONTROL_ENCODE(44, 1, 3, 1));
  122.  
  123.     *X = _int_out[1];
  124.     *Y = _int_out[2];
  125.  
  126.     return retval;
  127. }
  128. #endif /* L_objc_off */
  129.  
  130.  
  131. #ifdef L_objc_ord
  132.  
  133. /* Move an Object to NewPos in Tree
  134.  *    returns 0 on error    >0 no error
  135.  */
  136. int objc_order(void *Tree, int Object, int NewPos)
  137. {
  138.     _int_in[0] = Object;
  139.     _int_in[1] = NewPos;
  140.     _addrin[0] = Tree;
  141.  
  142.     return __aes__(AES_CONTROL_ENCODE(45, 2, 1, 1));
  143. }
  144. #endif /* L_objc_ord */
  145.  
  146.  
  147. #ifdef L_objc_edi
  148.  
  149. /* Let user edit text in Object
  150.  *    returns 0 on error    >0 no error
  151.  */
  152. int objc_edit(void *Tree, int Object, int Char, int Index, int Kind,
  153.           int *NewIndex)
  154. {
  155.     int retval;
  156.  
  157.     _int_in[0] = Object;
  158.     _int_in[1] = Char;
  159.     _int_in[2] = Index;
  160.     _int_in[3] = Kind;
  161.     _addrin[0] = Tree;
  162.  
  163.     retval = __aes__(AES_CONTROL_ENCODE(46, 4, 2, 1));
  164.  
  165.     *NewIndex = _int_out[1];
  166.  
  167.     return retval;
  168. }
  169. #endif /* L_objc_edi */
  170.  
  171. #ifdef L_objc_cha
  172.  
  173. /* Ch.State of Ob
  174.  *    returns 0 on error    >0 no error
  175.  */
  176. int objc_change(void *Tree, int Object, int Res, int Cx, int Cy, int Cw,
  177.         int Ch, int NewState, int Redraw)
  178. {
  179.     _int_in[0] = Object;
  180.     _int_in[1] = Res;    /* reserved (for what?) */
  181.     _int_in[2] = Cx;
  182.     _int_in[3] = Cy;
  183.     _int_in[4] = Cw;
  184.     _int_in[5] = Ch;
  185.     _int_in[6] = NewState;
  186.     _int_in[7] = Redraw;
  187.     _addrin[0] = Tree;
  188.  
  189.     return __aes__(AES_CONTROL_ENCODE(47, 8, 1, 1));
  190. }
  191. #endif /* L_objc_cha */
  192.  
  193. /* - eof - */
  194.